package com.ruoyi.waterPrice.service;

import com.ruoyi.common.core.domain.base.datam.WiOrganB;
import com.ruoyi.common.core.domain.business.waterPrice.WiOrgacctY;

import java.util.List;

/**
 * 机构水费台账登记Service接口
 * 
 * @author ps
 * @date 2023-02-17
 */
public interface IWiOrgacctYService 
{
    /**
     * 查询机构水费台账登记
     * 
     * @param feeYr 机构水费台账登记主键
     * @return 机构水费台账登记
     */
    public WiOrgacctY selectWiOrgacctYByFeeYrAndOrgCd(String feeYr,String orgCd);

    /**
     * 查询机构水费台账登记列表
     * 
     * @param wiOrgacctY 机构水费台账登记
     * @return 机构水费台账登记集合
     */
    public <T> List<WiOrgacctY> selectWiOrgacctYList(WiOrgacctY wiOrgacctY);

    /**
     * 新增机构水费台账登记
     * 
     * @param wiOrgacctY 机构水费台账登记
     * @return 结果
     */
    public int insertWiOrgacctY(WiOrgacctY wiOrgacctY);

    /**
     * 修改机构水费台账登记
     * 
     * @param wiOrgacctY 机构水费台账登记
     * @return 结果
     */
    public int updateWiOrgacctY(WiOrgacctY wiOrgacctY);

    /**
     * 批量删除机构水费台账登记
     * 
     * @param feeYrs 需要删除的机构水费台账登记主键集合
     * @return 结果
     */
    public int deleteWiOrgacctYByFeeYrs(String[] feeYrs);

    /**
     * 删除机构水费台账登记信息
     * 
     * @param feeYr 机构水费台账登记主键
     * @return 结果
     */
    public int deleteWiOrgacctYByFeeYr(String feeYr);

    /**
     * 机构水费收缴
     * @param wiOrgacctY
     */
    int payOrgFee(WiOrgacctY wiOrgacctY) throws Exception;

    /**
     * 计收分析 -- 当年应缴实缴分析
     */
    List<WiOrgacctY> orgFeeIncomeAnalys(String year,String orgCd);

    /**
     * 历年应缴实缴分析
     * @param orgCd
     */
    List<WiOrgacctY> orgFeeIncomeHistoryAnalys(String orgCd);

    /**
     * 获取下属机构
     * @param orgCd
     * @return
     */
    List<WiOrganB> getChildOrg(String orgCd);
}
